页面传值是开发中必不可少的业务需求,经常会有在
B
页面干完一些事情之后告诉A
页面或者传值到A
页面。这种需求通常使用属性、闭包、代理、单例、通知几种方式进行实现,下面我们来了解 iOS 页面传值中的闭包传值。
闭包传值的实现思路如下:
|
|
下面我们就以让第二个界面中的 lable 显示第一个界面 textField 中的文本这个功能为例,了解属性传值的具体实现。首先创建一个 RootViewController
和一个 DetailViewController
,在 DetailViewController
中声明一个闭包,并将其声明为 DetailViewController
的属性:
|
|
然后创建一个 UILabel
用于展示接收到的值:
|
|
下面,调用 passingValue
这个闭包:
|
|
现在我们回到 RootViewController
中,创建一个 UITextField
用于接收输入的文本:
|
|
添加 button
和手势,当点击 button
时响应相应方法进行视图间的切换完成视图间的传值,当轻触视图任意位置时取消键盘的第一响应:
|
|
下面实现 button
和手势对应的方法:
|
|
这样我们就利用闭包传值的方式,实现让第二个界面中的 lable
显示第一个界面 textField
中的文本。